Add openssl build support for android
authorMarco A L Barbosa <malbarbo@gmail.com>
Thu, 30 Mar 2017 23:06:54 +0000 (20:06 -0300)
committerMarco A L Barbosa <malbarbo@gmail.com>
Tue, 11 Apr 2017 20:22:12 +0000 (17:22 -0300)
Makefile.in
src/ci/run.sh

index 99ab8f1bd80e30eda3470c3ed7ced56a9ab1c09d..b1c85ebe5e40abb82714eebe499560b2a8f6666e 100644 (file)
@@ -195,11 +195,15 @@ $(DOC_DIR)/%: $(S)src/doc/%
        @mkdir -p $(@D)
        cp $< $@
 
+OPENSSL_OS_aarch64-linux-android := linux-generic64
 OPENSSL_OS_aarch64-unknown-linux-gnu := linux-aarch64
+OPENSSL_OS_arm-linux-androideabi := android
 OPENSSL_OS_arm-unknown-linux-gnueabi := linux-armv4
 OPENSSL_OS_arm-unknown-linux-gnueabihf := linux-armv4
+OPENSSL_OS_armv7-linux-androideabi := android-armv7
 OPENSSL_OS_armv7-unknown-linux-gnueabihf := linux-armv4
 OPENSSL_OS_i686-apple-darwin := darwin-i386-cc
+OPENSSL_OS_i686-linux-android := android-x86
 OPENSSL_OS_i686-unknown-freebsd := BSD-x86-elf
 OPENSSL_OS_i686-unknown-linux-gnu := linux-elf
 OPENSSL_OS_i686-unknown-linux-musl := linux-elf
@@ -217,11 +221,15 @@ OPENSSL_OS_x86_64-unknown-linux-gnu := linux-x86_64
 OPENSSL_OS_x86_64-unknown-linux-musl := linux-x86_64
 OPENSSL_OS_x86_64-unknown-netbsd := BSD-x86_64
 
+OPENSSL_AR_aarch64-linux-android := aarch64-linux-android-ar
 OPENSSL_AR_aarch64-unknown-linux-gnu := aarch64-linux-gnu-ar
+OPENSSL_AR_arm-linux-androideabi := arm-linux-androideabi-ar
 OPENSSL_AR_arm-unknown-linux-gnueabi := arm-linux-gnueabi-ar
 OPENSSL_AR_arm-unknown-linux-gnueabihf := arm-linux-gnueabihf-ar
+OPENSSL_AR_armv7-linux-androideabi := arm-linux-androideabi-ar
 OPENSSL_AR_armv7-unknown-linux-gnueabihf := armv7-linux-gnueabihf-ar
 OPENSSL_AR_i686-apple-darwin := ar
+OPENSSL_AR_i686-linux-android := i686-linux-android-ar
 OPENSSL_AR_i686-unknown-freebsd := i686-unknown-freebsd10-ar
 OPENSSL_AR_i686-unknown-linux-gnu := ar
 OPENSSL_AR_i686-unknown-linux-musl := ar
@@ -238,11 +246,16 @@ OPENSSL_AR_x86_64-unknown-freebsd := x86_64-unknown-freebsd10-ar
 OPENSSL_AR_x86_64-unknown-linux-gnu := ar
 OPENSSL_AR_x86_64-unknown-linux-musl := ar
 OPENSSL_AR_x86_64-unknown-netbsd := x86_64-unknown-netbsd-ar
+
+OPENSSL_CC_aarch64-linux-android := aarch64-linux-android-gcc
 OPENSSL_CC_aarch64-unknown-linux-gnu := aarch64-linux-gnu-gcc
+OPENSSL_CC_arm-linux-androideabi := arm-linux-androideabi-gcc
 OPENSSL_CC_arm-unknown-linux-gnueabi := arm-linux-gnueabi-gcc
 OPENSSL_CC_arm-unknown-linux-gnueabihf := arm-linux-gnueabihf-gcc
 OPENSSL_CC_armv7-unknown-linux-gnueabihf := armv7-linux-gnueabihf-gcc
+OPENSSL_CC_armv7-linux-androideabi := arm-linux-androideabi-gcc
 OPENSSL_CC_i686-apple-darwin := clang
+OPENSSL_CC_i686-linux-android := i686-linux-android-gcc
 OPENSSL_CC_i686-unknown-freebsd := i686-unknown-freebsd10-gcc
 OPENSSL_CC_i686-unknown-linux-gnu := gcc
 OPENSSL_CC_i686-unknown-linux-musl := musl-gcc
@@ -261,6 +274,8 @@ OPENSSL_CC_x86_64-unknown-linux-musl := musl-gcc
 OPENSSL_CC_x86_64-unknown-netbsd := x86_64-unknown-netbsd-gcc
 
 SETARCH_i686-unknown-linux-gnu := setarch i386
+
+OPENSSL_CFLAGS_aarch64-linux-android := "-mandroid -fomit-frame-pointer"
 OPENSSL_CFLAGS_i686-apple-darwin := -m32
 OPENSSL_CFLAGS_i686-unknown-linux-gnu := -m32
 OPENSSL_CFLAGS_i686-unknown-linux-musl := -m32
index 1f20a7652d9816e713c268411494df1a145c5dfd..4ffc410be14ca505fbbb3b62586a39269bb275c5 100755 (executable)
@@ -47,6 +47,22 @@ if [ -n "$CI" ] && [ "$BRANCH" != "auto-cargo" ] && [ "$ALLOW_PR" = "" ]; then
     exit 0
 fi
 
+# For some unknown reason libz is not found in the android docker image, so we
+# use this workaround
+case $TARGET in
+  arm-linux-androideabi | armv7-linux-androideabi )
+    export DEP_Z_ROOT=/android-ndk/arm/sysroot/usr
+    ;;
+
+  aarch64-linux-android )
+    export DEP_Z_ROOT=/android-ndk/arm64/sysroot/usr/
+    ;;
+
+  i686-linux-android )
+    export DEP_Z_ROOT=/android-ndk/x86/sysroot/usr/
+    ;;
+esac
+
 $SRC/configure \
     --prefix=/tmp/obj/install \
     --target=$TARGET \